package musicstore.dao.impl;

import java.util.List;

import musicstore.dao.GenreDao;
import musicstore.entity.Genre;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class GenreDaoImpl extends HibernateDaoSupport implements GenreDao {

	public List<Genre> getAll() {
		return (List<Genre>) getHibernateTemplate().find("from Genre");
	}

	public List<Genre> getListByName(String name) {
		String hql = "from Genre where name = ?";
		return (List<Genre>)getHibernateTemplate().find(hql,name);
	}
	
	public static void main(String[] args) {
		ApplicationContext atx = new ClassPathXmlApplicationContext("beans.xml");
		GenreDao genreDao = (GenreDao) atx.getBean("genreDao");
		List<Genre> list = genreDao.getAll();
		System.out.println(list.get(0).getName());
	}

	@Override
	public void add(Genre genre) {
		getHibernateTemplate().save(genre);
	}

	@Override
	public void update(Genre genre) {
		getHibernateTemplate().update(genre);
	}

	@Override
	public Genre getGenreById(int id) {
		return getHibernateTemplate().get(Genre.class, id);
	}

	@Override
	public void delete(Genre genre) {
		getHibernateTemplate().delete(getHibernateTemplate().get(Genre.class, genre.getId()));
	}

}
